const fs = require('fs');

const errcode = require(__util + "/errcode")
const ct = require(__util + "/catch"); // 路由错误捕获(不使用则不会捕获异常错误)

module.exports = ct(async (req, res, next) => {
  const { fileGroup } = req.body // 文件组
  const file = req.files[0]

  if (!req.files) {
    return res.json(errcode.UPLOAD_NOTHING)
  }
  if (req.files.length === 0) {
    return res.json(errcode.UPLOAD_NOTHING)
  }

  // 判断文件所属的文件组
  switch (fileGroup) {
    case 'dapp':
      break;
    default:
      return res.json(errcode.UPLOAD_FILEGROUP_INVALID);
  }

  const filePath = `${__base}/public/img/${fileGroup}/${file.originalname}`
  // 判断文件是否存在, 若存在先删除原有文件，再写入新文件
  const is_have = await fs.existsSync(filePath)
  if (is_have) {
    await fs.unlinkSync(filePath)
  }
  await fs.writeFileSync(filePath, file.buffer);

  res.status(200).json(
    errcode.SUCCESS({
      url: `${process.env.WEB_ROOT_URL}/public/img/${fileGroup}/${file.originalname}`,
      path: `/public/img/${fileGroup}/${file.originalname}`
    })
  )
})